golang write through